Android  Preference Activity 와 Preference Fragment 상세 설명 및 간단 한 인 스 턴 스

Android  Preference Activity 와 Preference Fragment
머리말
돌아 다 니 면서 안 드 로 이 드 로 돌 아 왔 습 니 다.잡담 은 그만 하 세 요.안 드 로 이 드 원생 의 Settings 애플 리 케 이 션 을 참고 하여 Preference Activity,Preference Fragment,headers 의 사용 을 소개 합 니 다.
PreferenceActivity
우 리 는 먼저 간단 한 예 를 통 해 Preference Activity 의 사용 을 배 워 보 자.
preferences_scenario_1.xml
우 리 는 먼저 xml 파일 을 통 해 간단 한 preference 인터페이스,res/xml/preference 를 정의 합 니 다.scenario_1.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

  <PreferenceScreen
    android:summary="@string/next_screen_title"
    android:title="@string/next_screen_summary" >
    <CheckBoxPreference
      android:key="@+id/next_screen_checkbox_preference"
      android:summary="@string/checkbox_summary"
      android:title="@string/checkbox_title" />
  </PreferenceScreen>

  <PreferenceCategory android:title="@string/category_title" 
    android:summary="@string/category_title">
    <CheckBoxPreference
      android:defaultValue="false"
      android:key="pref_otificationskey"
      android:title="@string/checkbox_title" >
    </CheckBoxPreference>

    <ListPreference
      android:entries="@array/people_name"
      android:entryValues="@array/people_value"
      android:key="pref_SyncFrequencykey"
      android:summary="@string/list_summary"
      android:title="@string/list_title" >
    </ListPreference>
  </PreferenceCategory>

</PreferenceScreen>

관련 된 string.xml 내용 은 다음 과 같 습 니 다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="next_screen_title">     </string>
  <string name="next_screen_summary">   </string>
  <string name="checkbox_summary">   </string>
  <string name="checkbox_title">   ?</string>
  <string name="category_title">   </string>
  <string name="list_title">    </string>
  <string name="list_summary">      </string>
</resources>
Preference Activity
Android 3.0 이전 에는 Preference Activity 가 Preference Screens 를 보 여 주 는 데 사 용 됐 기 때문에 Android 3.0 이전 시스템 을 지원 하려 면 Preference Activity 클래스 를 계승 하여 Preference Screens 를 보 여 줘 야 합 니 다.예제 코드 는 다음 과 같다.

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class CustomPreferenceActivity extends PreferenceActivity{

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preference_scenario_1);
  }
}

oncreate 방법 을 다시 쓰 고 addPreferences FromResource 방법 으로 xml 레이아웃 파일 을 불 러 옵 니 다.
AndroidManifest.xml 에서 이 Custom Preference Activity 를 설명해 야 한 다 는 것 을 잊 지 마 세 요.
주의:
Preference Activity 의 addPreferences FromResource 방법 은 Android 3.0(API LEVEL 11)이후 폐기 되 었 습 니 다.Android 3.0 이후 Preference Fragment 를 사용 하여 Preference Screen 을 보 여 주 는 것 을 추천 합 니 다.
시범 을 보이다
다른 activity 에 서 는 startActivity 를 통 해 이 Preference Activity 를 시작 할 수 있 습 니 다.데모 그림 은 다음 과 같 습 니 다.

PreferenceFragment
xml 레이아웃 파일
xml 파일 은 위의 Preference Activity 의 레이아웃 파일 을 다시 사용 할 수 있 습 니 다.
Preference Fragment
예제 코드 는 다음 과 같다.

import android.os.Bundle;
import android.preference.PreferenceFragment;

public class CustomPreferenceFragment extends PreferenceFragment{
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preference_scenario_1);
  }
}

환경 설정 활동 관리 프 래 그 먼 트
예제 코드 는 다음 과 같다.

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class CustomPreferenceActivity extends PreferenceActivity{

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    getFragmentManager().beginTransaction().replace(android.R.id.content, new CustomPreferenceFragment()).commit();
  }
}

어울리다
안 드 로 이 드 3.0 이전 시스템 과 동시에 어 울 리 기 위해 서 는 Build.VERSION.SDK 를 통 해INT 는 코드 에서 Preference Screen 을 어떻게 나타 내 는 지 자동 으로 판단 합 니 다.예제 코드 는 다음 과 같다.

import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceActivity;

public class CustomPreferenceActivity extends PreferenceActivity{

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
      addPreferencesFromResource(R.xml.preference_scenario_1);
    } else {
      getFragmentManager().beginTransaction().replace(android.R.id.content, new CustomPreferenceFragment()).commit();
    }
  }
}

읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기